/*******************************************************************************
 * FilePath    : \Src\BSP\Led.c
 * Version     : 1.0
 * Brief       : 
 * Author      : AndrewHu
 * Company     : Shanghai MacroGiga Electronics CO.,Ltd
 * Email       : Hubinbo@macrogiga.com
 * Date        : 2020-04-03 15:15:31
 * LastEditors : AndrewHu
 * LastEditTime: 2020-04-04 15:48:51
 * Description : 
 ******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include <Includes.h>
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function ----------------------------------------------------------*/
/* extern --------------------------------------------------------------------*/

/*******************************************************************************
 * Function    : Led_Init
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-03 16:01:38
 * Description : 
 ******************************************************************************/
void Led_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;

    //module led indicator PA8
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_5);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}
/*******************************************************************************
 * Function    : LED_OnOff
 * Brief       : LED亮灭控制
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-03 15:59:24
 * Description : 
 ******************************************************************************/
void LED_OnOff(u8 onFlag)
{
    if (onFlag)
        GPIOB->BRR = GPIO_Pin_0; //low, on
    else
        GPIOB->BSRR = GPIO_Pin_0; //high, off
}
/*******************************************************************************
 * Function    : LED_ChangeStatus
 * Brief       : LED灯的亮灭状态改变
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-04 15:18:38
 * Description : 
 ******************************************************************************/
void LED_ChangeStatus(void)
{
    if (GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_0))
        GPIOB->BRR = GPIO_Pin_0; //low, on
    else
        GPIOB->BSRR = GPIO_Pin_0; //high, off
}
/*******************************************************************************
 * Function    : getLedStatus
 * Brief       : 获取LED灯亮灭状态
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-04 15:20:46
 * Description : 
 ******************************************************************************/
u8 getLedStatus(void)
{
    if (GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_0))
        return 0;
    else
        return 1;
}
